USB is bloatware pushed upon us by corporate hardware manufacturers.
There is no reason to use USB. The only thing it does is make everything worse. You want to attach a device to your computer? We had a thing for that, called PCI. You want it to be easily removable, and connectable to multiple devices? That's called Bluetooth.
What problem is USB even trying to solve?
This follows a broader trend of everything being so ridiculously overengineered nowadays.
- E-Mail: use HTML 4.01 but ONLY EIGHTY CHARACTERS PER LINE otherwise the entire thing breaks down!!!
- Retroarch: many emulators in one program, even while you only need one at a time. Just start the right emulator, man...
- Wayland: you're saying I need to generate code from XML files?
- Home Assistant: too many menus.
- Kubernetes: I don't even have to explain how overengineered this is.
- x86-64: to enter 64 bits mode (long mode), one first has to turn on the computer. This loads the BIOS (Basic Input/Output System). Depending on whether you are booting through Master Boot Record or EFI (preferably UEFI), this process depends. MBR reads the first sector of your disc. If the fivehundredeleventh and fivehundredtwelfth bytes contain the numbers 0x55, 0xAA (respectively), it will load that sector, and that sector only, at the adress 0x0000:0x7C00. From here on out, using bios function 0x13 to load data from disk to memory. Jump there. Use bios function 0x15 to get a map of available memory. Remember this only works when setting edx to 0x0534D4150 and eax to 0xE820! Ha! Bet you forgot that, you dummy... Now, move on to setting up an IDT and a GDT. Also, set up a four-level paging structure. You can save the address to that in CR3. Don't forget to open the A20 line. Otherwise, you can only use 19 bits of memory addressing, of course. Now that your gdt and idt are loaded, you can perform a long jump to 64 bit code.
- Mowing grass: there are robots which mow your lawn now.